package com.hb.gp.util.command;

import java.util.List;

import com.hb.gp.util.MsgGenUtil;

public class APDU_GetStatus {

	// private static final String p2 = "00";
	/**
	 * 读取状态命令
	 * 
	 * @param tcode
	 *            交易流水号
	 * @param p1
	 *            获取状态的p1
	 * @param aid
	 *            指定安全域或应用的aid
	 * */
	public String getStatus(String tcode, String p1, String p2, String aid) {
		StringBuffer sb = new StringBuffer();
		sb.append("80F2");
		sb.append(p1);
		sb.append(p2);
		if (aid != null) {
			String str = "4F" + MsgGenUtil.Int2Bytes1(aid.length() / 2) + aid;
			sb.append(MsgGenUtil.Int2Bytes1(str.length() / 2));
			sb.append(str);
		} else {
			sb.append("024F00");
		}
		sb.append("00");
		return sb.toString();
	}

	/**
	 * level02下读取状态命令
	 * 
	 * @param tcode
	 *            交易流水号
	 * @param p1
	 *            获取状态的p1
	 * @param aid
	 *            指定安全域或应用的aid
	 * @param aid2
	 * @param sessionKeys
	 *            会话密钥
	 * @param icv最后一次mac数据
	 * */
	public String getStatusToLevel02(String tcode, String p1, String p2,
			String aid, List<String> sessionKeys, String icv) {
		// String pbCardKeyMacSk = sessionKeys.get(1);
		StringBuffer sb = new StringBuffer();
		sb.append("84F2");
		sb.append(p1);
		sb.append(p2);
		if (aid != null) {
			String str = "4F" + MsgGenUtil.Int2Bytes1(aid.length() / 2) + aid;
			sb.append(MsgGenUtil.Int2Bytes1(str.length() / 2 + 8));
			sb.append(str);
		} else {
			sb.append("0A4F00");
		}
		// if(ShareParam.GP_MAC.get(tcode)==null){
		// ShareParam.GP_MAC.put(tcode,GP_GetMac.getIMac(sb.toString(),
		// pbCardKeyMacSk,icv, true));
		// }else{
		// ShareParam.GP_MAC.put(tcode,GP_GetMac.getIMac(sb.toString(),
		// pbCardKeyMacSk,ShareParam.GP_MAC.get(tcode), true));
		// }
		// sb.append(ShareParam.GP_MAC.get(tcode));
		sb.append("00");
		return sb.toString();
	}
	// 80 F2 80 00 02 4F 00 00
	// 80 F2 40 00 02 4F 00 00
	// 80 F2 10 00 02 4F 00 00
	// 80 F2 10 01 02 4F 00 00
}
